<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <style>
      body {
        margin: 0;
        padding: 0;
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        color: black;
        background-color: white;
      }
      main {
        padding: 20px;
        box-sizing: border-box;
        width: 100%;
        min-height: 100vh;
        border: 20px solid hsla(0, 100%, 65%, 1);
      }
      pre {
        font-size: 0.8em;
        overflow-x: hidden;
      }
      h1 {
        margin-top: 0;
      }

      [update-checker="false"] .if-update-checker {
        display: none;
      }
    </style>
  </head>
  <body>
    <main>
      <script>
        document.body.setAttribute('update-checker', PrivacyPreload.isUpdateCheckerAllowed());
      </script>

      <h1>Privacy Policy</h1>

      <p><i>Updated September 8, 2023 (v1.9.0)</i></p>

      <p>A comprehensive privacy policy for all of TurboWarp can be found at <a href="https://turbowarp.org/privacy.html">https://turbowarp.org/privacy.html</a>. Here, we have simplified it down to just the parts relevant to the desktop app.</p>

      <h2 class="if-update-checker">Update Checker</h2>
      <p class="if-update-checker">The desktop app contains an update checker which <a href="#" class="open-desktop-settings">can be disabled in desktop settings</a>.</p>

      <h2>Rich Presence</h2>
      <p>The desktop app has a disabled-by-default option to enable "Rich Presence" which shares the name of the project you have open and how long it has been open with chat apps running on your computer, which may be displayed on your public profile. This <a href="#" class="open-desktop-settings">can be configured in desktop settings</a>.</p>

      <script>
        for (const el of document.querySelectorAll('.open-desktop-settings')) {
          el.addEventListener('click', () => {
            PrivacyPreload.openDesktopSettings();
          });
        }
      </script>

      <h2>Loading projects</h2>
      <p>When you load a project from another website, you are subject to the privacy practices of that website. For example, when loading projects from Scratch, you are subject to the <a href="https://scratch.mit.edu/privacy_policy">Scratch privacy policy</a>. When loading projects from Scratch specifically, the project ID will also be shared with TurboWarp as part of Scratch's API does not allow direct access. We may briefly log the project ID for caching.</p>

      <h2>Running projects</h2>
      <p>When connecting to our cloud variable servers (in the desktop app, this will only happen in packaged projects, not in the editor), the project ID and username may be logged for 14 days. Data in cloud variables is sent to anyone else connected at the same time. Custom cloud variable servers are outside of our control.</p>
      <p>Some extensions must communicate with external APIs to function. For example, the translate and text-to-speech extensions rely on the Scratch API, which is covered by the <a href="https://scratch.mit.edu/privacy_policy">Scratch privacy policy</a>. To improve performance, some extensions access TurboWarp's APIs instead where both the request (for example, the text being translated) and the result after forwarding to Scratch (for example, the translated version of the text) may be cached.</p>
      <p>Most extensions on the <a href="https://extensions.turbowarp.org/">official extension gallery</a> will ask for permission when the project attempts to use the extension to access an untrusted website, however we cannot guarantee this is 100% reliable.</p>
      <p>When loading a custom extension from a place other than the official gallery such as a URL or file on your computer, the editor will ask for permission to load the extension. If you approve this dialog, the extension can bypass the permission dialogs that official extensions show.</p>

      <h2>TurboWarp Packager</h2>
      <p>The integrated copy of the TurboWarp Packager may download files such as Electron binaries from a server controlled by TurboWarp. These downloads will be cached after being downloaded.</p>
      <p>When packaging a project using custom extensions, the packager may access those websites to download the extensions.</p>

      <h2>Projects generated by the TurboWarp Packager</h2>
      <p>Packaged projects include all scripts, costumes, and sounds to run the project. The packager tries to include all custom extensions too, but in some cases, the packaged project may need to download certain extensions each time it runs.</p>
      <p>Advanced features such as third-party custom extensions, custom cloud host, custom JS, and custom CSS are outside of our control.</p>
      <p>Note that, unlike the TurboWarp editor, custom extensions in packaged projects will not ask for permission before contacting websites.</p>
      <p>You are responsible for informing end users about the privacy practices of the files you distribute. Do not link to this document as your project's privacy policy as it may change in the future. You must write your own.</p>

      <h2>Contact</h2>
      <p>Any concerns related to privacy or any other matter should be sent to: <a href="mailto:contact@turbowarp.org">contact@turbowarp.org</a></p>
    </main>
  </body>
</html>
